﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


using SpiritEngine.Source.ApplicationLayer.Services;
using SpiritEngine.Source.ApplicationLayer.Services.FileIO;
using SpiritEngine.Source.EngineCore;


namespace SpiritEngine.Source.ApplicationLayer
{
    public interface ISE_EngineBase: ISE_Object, IDisposable
    {
        #region Public Methods

        // General Methods
        // ========================================================================================================================================================================================================
        void Shutdown();


        // Getters
        // ========================================================================================================================================================================================================
        ISE_EngineCore GetComponent_EngineCore();
        ISE_ServicesManager GetComponent_ServicesManager();
        
        // These are convenience methods allowing you to access the most often used services.
        ISE_FileIO_Service GetService_FileIO();


        // Setters
        // ========================================================================================================================================================================================================
        ISE_EngineCore SetComponent_EngineCore(ISE_EngineCore engineCore);
        ISE_ServicesManager SetComponent_ServicesManager(ISE_ServicesManager manager);

        // These are convenience methods allowing you to access the most often used services.
        ISE_FileIO_Service SetService_FileIO(ISE_FileIO_Service fileIO_Service);



        #endregion


        #region Debug Methods

#if (DEBUG)
        // put all debug methods in here...
#endif

        #endregion


        #region Properties

        #endregion


        #region Events

        #endregion
    }
}
